package cn.hnc.checkapi.bean;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(
   name = "product"
)
public class Product implements Serializable {
   private static final long serialVersionUID = 4963359130561432864L;
   @Id
   @GeneratedValue(
      strategy = GenerationType.IDENTITY
   )
   @JsonProperty("productID")
   private Long id;
   @JsonIgnore
   private String batchId;
   private Long uploadTime;
   private Integer version;
   private Integer macAxNum;
   private Integer passFlag;
   private String macModel;
   private String macNO;
   private String macSN;
   private String sysProductTime;
   @JsonFormat(
      pattern = "yyyy-MM-dd"
   )
   private Date macProductTime;
   private String ipcCode;
   private String contractCode;
   private String customerName;
   private String loginName;
   private String ioUnitType;
   private String ioUnitId;
   private int partCheckFlag;
   private String sysTypeName;
   @Transient
   private NcVer ncVer;
   @Transient
   @JsonProperty("servoVer")
   private List servos = new ArrayList();
   @Transient
   private List motors = new ArrayList();
   @Transient
   @JsonProperty("mServoVerList")
   private List mServoVerList = new ArrayList();
   @Transient
   @JsonProperty("mElecDataList")
   private List mElecDataList = new ArrayList();

   public Long getId() {
      return this.id;
   }

   public String getBatchId() {
      return this.batchId;
   }

   public Long getUploadTime() {
      return this.uploadTime;
   }

   public Integer getVersion() {
      return this.version;
   }

   public Integer getMacAxNum() {
      return this.macAxNum;
   }

   public Integer getPassFlag() {
      return this.passFlag;
   }

   public String getMacModel() {
      return this.macModel;
   }

   public String getMacNO() {
      return this.macNO;
   }

   public String getMacSN() {
      return this.macSN;
   }

   public String getSysProductTime() {
      return this.sysProductTime;
   }

   public Date getMacProductTime() {
      return this.macProductTime;
   }

   public String getIpcCode() {
      return this.ipcCode;
   }

   public String getContractCode() {
      return this.contractCode;
   }

   public String getCustomerName() {
      return this.customerName;
   }

   public String getLoginName() {
      return this.loginName;
   }

   public String getIoUnitType() {
      return this.ioUnitType;
   }

   public String getIoUnitId() {
      return this.ioUnitId;
   }

   public int getPartCheckFlag() {
      return this.partCheckFlag;
   }

   public String getSysTypeName() {
      return this.sysTypeName;
   }

   public NcVer getNcVer() {
      return this.ncVer;
   }

   public List getServos() {
      return this.servos;
   }

   public List getMotors() {
      return this.motors;
   }

   public List getMServoVerList() {
      return this.mServoVerList;
   }

   public List getMElecDataList() {
      return this.mElecDataList;
   }

   public void setId(final Long id) {
      this.id = id;
   }

   public void setBatchId(final String batchId) {
      this.batchId = batchId;
   }

   public void setUploadTime(final Long uploadTime) {
      this.uploadTime = uploadTime;
   }

   public void setVersion(final Integer version) {
      this.version = version;
   }

   public void setMacAxNum(final Integer macAxNum) {
      this.macAxNum = macAxNum;
   }

   public void setPassFlag(final Integer passFlag) {
      this.passFlag = passFlag;
   }

   public void setMacModel(final String macModel) {
      this.macModel = macModel;
   }

   public void setMacNO(final String macNO) {
      this.macNO = macNO;
   }

   public void setMacSN(final String macSN) {
      this.macSN = macSN;
   }

   public void setSysProductTime(final String sysProductTime) {
      this.sysProductTime = sysProductTime;
   }

   public void setMacProductTime(final Date macProductTime) {
      this.macProductTime = macProductTime;
   }

   public void setIpcCode(final String ipcCode) {
      this.ipcCode = ipcCode;
   }

   public void setContractCode(final String contractCode) {
      this.contractCode = contractCode;
   }

   public void setCustomerName(final String customerName) {
      this.customerName = customerName;
   }

   public void setLoginName(final String loginName) {
      this.loginName = loginName;
   }

   public void setIoUnitType(final String ioUnitType) {
      this.ioUnitType = ioUnitType;
   }

   public void setIoUnitId(final String ioUnitId) {
      this.ioUnitId = ioUnitId;
   }

   public void setPartCheckFlag(final int partCheckFlag) {
      this.partCheckFlag = partCheckFlag;
   }

   public void setSysTypeName(final String sysTypeName) {
      this.sysTypeName = sysTypeName;
   }

   public void setNcVer(final NcVer ncVer) {
      this.ncVer = ncVer;
   }

   public void setServos(final List servos) {
      this.servos = servos;
   }

   public void setMotors(final List motors) {
      this.motors = motors;
   }

   public void setMServoVerList(final List mServoVerList) {
      this.mServoVerList = mServoVerList;
   }

   public void setMElecDataList(final List mElecDataList) {
      this.mElecDataList = mElecDataList;
   }

   public boolean equals(final Object o) {
      if (o == this) {
         return true;
      } else if (!(o instanceof Product)) {
         return false;
      } else {
         Product other = (Product)o;
         if (!other.canEqual(this)) {
            return false;
         } else {
            Object this$id = this.getId();
            Object other$id = other.getId();
            if (this$id == null) {
               if (other$id != null) {
                  return false;
               }
            } else if (!this$id.equals(other$id)) {
               return false;
            }

            Object this$batchId = this.getBatchId();
            Object other$batchId = other.getBatchId();
            if (this$batchId == null) {
               if (other$batchId != null) {
                  return false;
               }
            } else if (!this$batchId.equals(other$batchId)) {
               return false;
            }

            Object this$uploadTime = this.getUploadTime();
            Object other$uploadTime = other.getUploadTime();
            if (this$uploadTime == null) {
               if (other$uploadTime != null) {
                  return false;
               }
            } else if (!this$uploadTime.equals(other$uploadTime)) {
               return false;
            }

            label270: {
               Object this$version = this.getVersion();
               Object other$version = other.getVersion();
               if (this$version == null) {
                  if (other$version == null) {
                     break label270;
                  }
               } else if (this$version.equals(other$version)) {
                  break label270;
               }

               return false;
            }

            label263: {
               Object this$macAxNum = this.getMacAxNum();
               Object other$macAxNum = other.getMacAxNum();
               if (this$macAxNum == null) {
                  if (other$macAxNum == null) {
                     break label263;
                  }
               } else if (this$macAxNum.equals(other$macAxNum)) {
                  break label263;
               }

               return false;
            }

            Object this$passFlag = this.getPassFlag();
            Object other$passFlag = other.getPassFlag();
            if (this$passFlag == null) {
               if (other$passFlag != null) {
                  return false;
               }
            } else if (!this$passFlag.equals(other$passFlag)) {
               return false;
            }

            label249: {
               Object this$macModel = this.getMacModel();
               Object other$macModel = other.getMacModel();
               if (this$macModel == null) {
                  if (other$macModel == null) {
                     break label249;
                  }
               } else if (this$macModel.equals(other$macModel)) {
                  break label249;
               }

               return false;
            }

            label242: {
               Object this$macNO = this.getMacNO();
               Object other$macNO = other.getMacNO();
               if (this$macNO == null) {
                  if (other$macNO == null) {
                     break label242;
                  }
               } else if (this$macNO.equals(other$macNO)) {
                  break label242;
               }

               return false;
            }

            Object this$macSN = this.getMacSN();
            Object other$macSN = other.getMacSN();
            if (this$macSN == null) {
               if (other$macSN != null) {
                  return false;
               }
            } else if (!this$macSN.equals(other$macSN)) {
               return false;
            }

            Object this$sysProductTime = this.getSysProductTime();
            Object other$sysProductTime = other.getSysProductTime();
            if (this$sysProductTime == null) {
               if (other$sysProductTime != null) {
                  return false;
               }
            } else if (!this$sysProductTime.equals(other$sysProductTime)) {
               return false;
            }

            label221: {
               Object this$macProductTime = this.getMacProductTime();
               Object other$macProductTime = other.getMacProductTime();
               if (this$macProductTime == null) {
                  if (other$macProductTime == null) {
                     break label221;
                  }
               } else if (this$macProductTime.equals(other$macProductTime)) {
                  break label221;
               }

               return false;
            }

            label214: {
               Object this$ipcCode = this.getIpcCode();
               Object other$ipcCode = other.getIpcCode();
               if (this$ipcCode == null) {
                  if (other$ipcCode == null) {
                     break label214;
                  }
               } else if (this$ipcCode.equals(other$ipcCode)) {
                  break label214;
               }

               return false;
            }

            Object this$contractCode = this.getContractCode();
            Object other$contractCode = other.getContractCode();
            if (this$contractCode == null) {
               if (other$contractCode != null) {
                  return false;
               }
            } else if (!this$contractCode.equals(other$contractCode)) {
               return false;
            }

            label200: {
               Object this$customerName = this.getCustomerName();
               Object other$customerName = other.getCustomerName();
               if (this$customerName == null) {
                  if (other$customerName == null) {
                     break label200;
                  }
               } else if (this$customerName.equals(other$customerName)) {
                  break label200;
               }

               return false;
            }

            Object this$loginName = this.getLoginName();
            Object other$loginName = other.getLoginName();
            if (this$loginName == null) {
               if (other$loginName != null) {
                  return false;
               }
            } else if (!this$loginName.equals(other$loginName)) {
               return false;
            }

            label186: {
               Object this$ioUnitType = this.getIoUnitType();
               Object other$ioUnitType = other.getIoUnitType();
               if (this$ioUnitType == null) {
                  if (other$ioUnitType == null) {
                     break label186;
                  }
               } else if (this$ioUnitType.equals(other$ioUnitType)) {
                  break label186;
               }

               return false;
            }

            Object this$ioUnitId = this.getIoUnitId();
            Object other$ioUnitId = other.getIoUnitId();
            if (this$ioUnitId == null) {
               if (other$ioUnitId != null) {
                  return false;
               }
            } else if (!this$ioUnitId.equals(other$ioUnitId)) {
               return false;
            }

            if (this.getPartCheckFlag() != other.getPartCheckFlag()) {
               return false;
            } else {
               Object this$sysTypeName = this.getSysTypeName();
               Object other$sysTypeName = other.getSysTypeName();
               if (this$sysTypeName == null) {
                  if (other$sysTypeName != null) {
                     return false;
                  }
               } else if (!this$sysTypeName.equals(other$sysTypeName)) {
                  return false;
               }

               Object this$ncVer = this.getNcVer();
               Object other$ncVer = other.getNcVer();
               if (this$ncVer == null) {
                  if (other$ncVer != null) {
                     return false;
                  }
               } else if (!this$ncVer.equals(other$ncVer)) {
                  return false;
               }

               label157: {
                  Object this$servos = this.getServos();
                  Object other$servos = other.getServos();
                  if (this$servos == null) {
                     if (other$servos == null) {
                        break label157;
                     }
                  } else if (this$servos.equals(other$servos)) {
                     break label157;
                  }

                  return false;
               }

               label150: {
                  Object this$motors = this.getMotors();
                  Object other$motors = other.getMotors();
                  if (this$motors == null) {
                     if (other$motors == null) {
                        break label150;
                     }
                  } else if (this$motors.equals(other$motors)) {
                     break label150;
                  }

                  return false;
               }

               Object this$mServoVerList = this.getMServoVerList();
               Object other$mServoVerList = other.getMServoVerList();
               if (this$mServoVerList == null) {
                  if (other$mServoVerList != null) {
                     return false;
                  }
               } else if (!this$mServoVerList.equals(other$mServoVerList)) {
                  return false;
               }

               Object this$mElecDataList = this.getMElecDataList();
               Object other$mElecDataList = other.getMElecDataList();
               if (this$mElecDataList == null) {
                  if (other$mElecDataList != null) {
                     return false;
                  }
               } else if (!this$mElecDataList.equals(other$mElecDataList)) {
                  return false;
               }

               return true;
            }
         }
      }
   }

   protected boolean canEqual(final Object other) {
      return other instanceof Product;
   }

   public int hashCode() {
      boolean PRIME = true;
      int result = 1;
      Object $id = this.getId();
      result = result * 59 + ($id == null ? 43 : $id.hashCode());
      Object $batchId = this.getBatchId();
      result = result * 59 + ($batchId == null ? 43 : $batchId.hashCode());
      Object $uploadTime = this.getUploadTime();
      result = result * 59 + ($uploadTime == null ? 43 : $uploadTime.hashCode());
      Object $version = this.getVersion();
      result = result * 59 + ($version == null ? 43 : $version.hashCode());
      Object $macAxNum = this.getMacAxNum();
      result = result * 59 + ($macAxNum == null ? 43 : $macAxNum.hashCode());
      Object $passFlag = this.getPassFlag();
      result = result * 59 + ($passFlag == null ? 43 : $passFlag.hashCode());
      Object $macModel = this.getMacModel();
      result = result * 59 + ($macModel == null ? 43 : $macModel.hashCode());
      Object $macNO = this.getMacNO();
      result = result * 59 + ($macNO == null ? 43 : $macNO.hashCode());
      Object $macSN = this.getMacSN();
      result = result * 59 + ($macSN == null ? 43 : $macSN.hashCode());
      Object $sysProductTime = this.getSysProductTime();
      result = result * 59 + ($sysProductTime == null ? 43 : $sysProductTime.hashCode());
      Object $macProductTime = this.getMacProductTime();
      result = result * 59 + ($macProductTime == null ? 43 : $macProductTime.hashCode());
      Object $ipcCode = this.getIpcCode();
      result = result * 59 + ($ipcCode == null ? 43 : $ipcCode.hashCode());
      Object $contractCode = this.getContractCode();
      result = result * 59 + ($contractCode == null ? 43 : $contractCode.hashCode());
      Object $customerName = this.getCustomerName();
      result = result * 59 + ($customerName == null ? 43 : $customerName.hashCode());
      Object $loginName = this.getLoginName();
      result = result * 59 + ($loginName == null ? 43 : $loginName.hashCode());
      Object $ioUnitType = this.getIoUnitType();
      result = result * 59 + ($ioUnitType == null ? 43 : $ioUnitType.hashCode());
      Object $ioUnitId = this.getIoUnitId();
      result = result * 59 + ($ioUnitId == null ? 43 : $ioUnitId.hashCode());
      result = result * 59 + this.getPartCheckFlag();
      Object $sysTypeName = this.getSysTypeName();
      result = result * 59 + ($sysTypeName == null ? 43 : $sysTypeName.hashCode());
      Object $ncVer = this.getNcVer();
      result = result * 59 + ($ncVer == null ? 43 : $ncVer.hashCode());
      Object $servos = this.getServos();
      result = result * 59 + ($servos == null ? 43 : $servos.hashCode());
      Object $motors = this.getMotors();
      result = result * 59 + ($motors == null ? 43 : $motors.hashCode());
      Object $mServoVerList = this.getMServoVerList();
      result = result * 59 + ($mServoVerList == null ? 43 : $mServoVerList.hashCode());
      Object $mElecDataList = this.getMElecDataList();
      result = result * 59 + ($mElecDataList == null ? 43 : $mElecDataList.hashCode());
      return result;
   }

   public String toString() {
      return "Product(id=" + this.getId() + ", batchId=" + this.getBatchId() + ", uploadTime=" + this.getUploadTime() + ", version=" + this.getVersion() + ", macAxNum=" + this.getMacAxNum() + ", passFlag=" + this.getPassFlag() + ", macModel=" + this.getMacModel() + ", macNO=" + this.getMacNO() + ", macSN=" + this.getMacSN() + ", sysProductTime=" + this.getSysProductTime() + ", macProductTime=" + this.getMacProductTime() + ", ipcCode=" + this.getIpcCode() + ", contractCode=" + this.getContractCode() + ", customerName=" + this.getCustomerName() + ", loginName=" + this.getLoginName() + ", ioUnitType=" + this.getIoUnitType() + ", ioUnitId=" + this.getIoUnitId() + ", partCheckFlag=" + this.getPartCheckFlag() + ", sysTypeName=" + this.getSysTypeName() + ", ncVer=" + this.getNcVer() + ", servos=" + this.getServos() + ", motors=" + this.getMotors() + ", mServoVerList=" + this.getMServoVerList() + ", mElecDataList=" + this.getMElecDataList() + ")";
   }
}
